#include <iostream>
#include <vector>
using namespace std;
int n;
vector<int> a;
vector<int> temp;
vector<vector<int>> ans;
void dfs(int x, int j) {
    if(x > n) {
        return ;
    }
    if(x == n) {
        ans.push_back(temp);
    }
    for(int i = j; i < n - 1; i++) {
        temp.push_back(a[i]);
        dfs(x + a[i], i);
        temp.pop_back();
    }
}
int main() {
    cin >> n;
    for(int i = 1; i < n; i++) {
        a.push_back(i);
    }
    dfs(0, 0);
    for(int i = 0; i < ans.size(); i++) {
        for(int j = 0; j < ans[i].size(); j++) {
            if(j == ans[i].size() - 1) {
                cout << ans[i][j];
                break;
            }
            cout << ans[i][j] << "+";
        }
        cout << endl;
    }
    return 0;
}